/* eslint-disable @typescript-eslint/ban-ts-comment */
import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router';
import type { App } from 'vue';
import { routerJumpRedefine } from './guard/routerJumpRedefine'; // 路由跳转方法重写
import notFound from '@/components/Exception/index.vue';
// import errorModule from './modules/errorModule'; // 异常管理
// import agentModule from './modules/agentModule'; // 代理商管理
// import vipAgentModule from './modules/vipAgentModule'; // VIP代理商管理
// import userModule from './modules/userModule'; // 用户管理
import storeModule from './modules/storeModule'; // 门店商户管理
import deviceModule from './modules/deviceModule'; // 设备管理
import contentModule from './modules/contentModule'; // 内容管理
// import packageModule from './modules/packageModule'; // 套餐管理
// import orderModule from './modules/orderModule'; // 订单管理
// import authModule from './modules/authModule'; // 权限管理
import financeModule from './modules/financeModule'; // 财务管理
// import firmwareModule from './modules/firmwareModule'; // 固件版本
import systemModule from './modules/systemModule'; // 系统管理
import operationModule from './modules/operationModule'; // 操作日志


import authModule from './userModules/authModule'; // 角色管理
import managerModule from './userModules/managerModule'; // 管理员管理
import userModule from './userModules/userModule'; // 用户管理
import orderModule from './userModules/orderModule'; // 订单管理
import packageModule from './userModules/packageModule'; // 套餐管理


export const constRouterMap: any = [
  {
    path: '/home',
    name: 'home',
    meta: {
      title: '首页',
      icon: 'home-outlined',
    },
    component: () => import('@/views/home/index.vue'),
  },
  {
    path: '/person/msg',
    name: 'personal-msg',
    meta: {
      title: '个人设置',
    },
    hidden: true,
    component: () => import('@/views/personal/msg.vue'),
  },
];

export const asyncRouterMap: Array<RouteRecordRaw> = [
  {
    path: '/',
    meta: {
      title: '首页',
      icon: 'icon-icon_nav_work_nor',
    },
    name: 'index',
    redirect: '/home',
    component: () => import('@/views/index.vue'),
    children: [
      // {
      //   path: '/workbench',
      //   name: 'workbench',
      //   meta: {
      //     title: '工作台',
      //     icon: 'icon-icon_nav_work_nor',
      //     iconHover: 'icon-icon_nav_work_sel',
      //   },
      //   component: () => import('@/views/home/index.vue'),
      // },
      ...authModule,
      ...managerModule,
      ...userModule,
      ...packageModule,
      ...orderModule,
      ...deviceModule,
      // ...storeModule,
      // ...contentModule,
      // ...financeModule,
      // ...operationModule,
  
      ...systemModule,
    ],
  },
];

const routes: Array<RouteRecordRaw> = [
  {
    path: '/login',
    name: 'login',
    meta: {
      title: '登录',
    },
    component: () => import('@/views/login/index.vue'),
  },
  {
    path: '/exception',
    name: 'exception',
    component: () => import('@/views/index.vue'),
    children: [
      {
        path: '/:path(.*)*',
        name: 'notFound',
        component: notFound, // 引入 组件
      },
    ],
  },
];

const router = createRouter({
  history: createWebHashHistory(),
  routes,
});

// 路由跳转方法重写
routerJumpRedefine(router)

export function setupRouter(app: App<Element>) {
  app.use(router);
}

export default router;
